// export SoldLevel , EngLevel , MechLevel , SciLevel , Ru_Attack ; starting begin Ru_Attack = 0 ;
   0: LD_ADDR_EXP 5
   4: PUSH
   5: LD_INT 0
   7: ST_TO_ADDR
// disable ( 101 ) ;
   8: LD_INT 101
  10: DISABLE_MARKED
// disable ( 100 ) ;
  11: LD_INT 100
  13: DISABLE_MARKED
// disable ( 110 ) ;
  14: LD_INT 110
  16: DISABLE_MARKED
// disable ( 120 ) ;
  17: LD_INT 120
  19: DISABLE_MARKED
// Center = 1 ;
  20: LD_ADDR_EXP 14
  24: PUSH
  25: LD_INT 1
  27: ST_TO_ADDR
// Ludzie ;
  28: CALL 1311 0 0
// PrepareAmerican ;
  32: CALL 2043 0 0
// InGameon ;
  36: CALL_OW 8
// game_speed := 7 ;
  40: LD_ADDR_OWVAR 65
  44: PUSH
  45: LD_INT 7
  47: ST_TO_ADDR
// ComResearch ( lab1 , tech_radar ) ;
  48: LD_INT 8
  50: PPUSH
  51: LD_INT 6
  53: PPUSH
  54: CALL_OW 124
// AddComMoveXY ( Nefarem , 16 , 10 ) ;
  58: LD_EXP 6
  62: PPUSH
  63: LD_INT 16
  65: PPUSH
  66: LD_INT 10
  68: PPUSH
  69: CALL_OW 171
// AddComMoveXY ( Nefarem , 46 , 43 ) ;
  73: LD_EXP 6
  77: PPUSH
  78: LD_INT 46
  80: PPUSH
  81: LD_INT 43
  83: PPUSH
  84: CALL_OW 171
// AddComMoveXY ( Nefarem , 70 , 76 ) ;
  88: LD_EXP 6
  92: PPUSH
  93: LD_INT 70
  95: PPUSH
  96: LD_INT 76
  98: PPUSH
  99: CALL_OW 171
// AddComMoveXY ( Nefarem , 96 , 76 ) ;
 103: LD_EXP 6
 107: PPUSH
 108: LD_INT 96
 110: PPUSH
 111: LD_INT 76
 113: PPUSH
 114: CALL_OW 171
// AddComMoveXY ( Nefarem , 93 , 21 ) ;
 118: LD_EXP 6
 122: PPUSH
 123: LD_INT 93
 125: PPUSH
 126: LD_INT 21
 128: PPUSH
 129: CALL_OW 171
// AddComExitVehicle ( Nefarem ) ;
 133: LD_EXP 6
 137: PPUSH
 138: CALL_OW 181
// AddComMoveUnit ( Nefarem , dow ) ;
 142: LD_EXP 6
 146: PPUSH
 147: LD_EXP 9
 151: PPUSH
 152: CALL_OW 172
// end ;
 156: END
// every 0 0$1 trigger GetDistUnits ( Nefarem , dow ) < 2 do
 157: LD_EXP 6
 161: PPUSH
 162: LD_EXP 9
 166: PPUSH
 167: CALL_OW 296
 171: PUSH
 172: LD_INT 2
 174: LESS
 175: IFFALSE 367
 177: GO 179
 179: DISABLE
// begin ; ChangeSideFog ( 4 , 1 ) ;
 180: LD_INT 4
 182: PPUSH
 183: LD_INT 1
 185: PPUSH
 186: CALL_OW 343
// Say ( Nefarem , b4 ) ;
 190: LD_EXP 6
 194: PPUSH
 195: LD_STRING b4
 197: PPUSH
 198: CALL_OW 88
// Say ( dow , b5 ) ;
 202: LD_EXP 9
 206: PPUSH
 207: LD_STRING b5
 209: PPUSH
 210: CALL_OW 88
// Say ( Nefarem , b5-1 ) ;
 214: LD_EXP 6
 218: PPUSH
 219: LD_STRING b5-1
 221: PPUSH
 222: CALL_OW 88
// Say ( dow , b5-2 ) ;
 226: LD_EXP 9
 230: PPUSH
 231: LD_STRING b5-2
 233: PPUSH
 234: CALL_OW 88
// Say ( Nefarem , b6 ) ;
 238: LD_EXP 6
 242: PPUSH
 243: LD_STRING b6
 245: PPUSH
 246: CALL_OW 88
// ComMoveUnit ( dow , bulwa1 ) ;
 250: LD_EXP 9
 254: PPUSH
 255: LD_INT 141
 257: PPUSH
 258: CALL_OW 112
// ComMoveUnit ( Nefarem , wot ) ;
 262: LD_EXP 6
 266: PPUSH
 267: LD_INT 181
 269: PPUSH
 270: CALL_OW 112
// ComMoveUnit ( W2 , bulwa2 ) ;
 274: LD_EXP 10
 278: PPUSH
 279: LD_INT 18
 281: PPUSH
 282: CALL_OW 112
// SetFuel ( wot , 85 ) ;
 286: LD_INT 181
 288: PPUSH
 289: LD_INT 85
 291: PPUSH
 292: CALL_OW 240
// AddComMoveXY ( dow , 99 , 80 ) ;
 296: LD_EXP 9
 300: PPUSH
 301: LD_INT 99
 303: PPUSH
 304: LD_INT 80
 306: PPUSH
 307: CALL_OW 171
// AddComMoveXY ( W2 , 95 , 74 ) ;
 311: LD_EXP 10
 315: PPUSH
 316: LD_INT 95
 318: PPUSH
 319: LD_INT 74
 321: PPUSH
 322: CALL_OW 171
// wait ( 0 0$10 ) ;
 326: LD_INT 350
 328: PPUSH
 329: CALL_OW 67
// ComMoveUnit ( wot , bulwa2 ) ;
 333: LD_INT 181
 335: PPUSH
 336: LD_INT 18
 338: PPUSH
 339: CALL_OW 112
// Say ( dow , b7 ) ;
 343: LD_EXP 9
 347: PPUSH
 348: LD_STRING b7
 350: PPUSH
 351: CALL_OW 88
// Say ( Nefarem , b8 ) ;
 355: LD_EXP 6
 359: PPUSH
 360: LD_STRING b8
 362: PPUSH
 363: CALL_OW 88
// end ;
 367: END
// every 0 0$01 trigger IsInArea ( dow , uwaga3 ) do
 368: LD_EXP 9
 372: PPUSH
 373: LD_INT 6
 375: PPUSH
 376: CALL_OW 308
 380: IFFALSE 720
 382: GO 384
 384: DISABLE
// begin DialogueOn ;
 385: CALL_OW 6
// ComExitVehicle ( dow ) ;
 389: LD_EXP 9
 393: PPUSH
 394: CALL_OW 121
// Say ( dow , b11 ) ;
 398: LD_EXP 9
 402: PPUSH
 403: LD_STRING b11
 405: PPUSH
 406: CALL_OW 88
// Say ( Nefarem , b12 ) ;
 410: LD_EXP 6
 414: PPUSH
 415: LD_STRING b12
 417: PPUSH
 418: CALL_OW 88
// Say ( dow , b13 ) ;
 422: LD_EXP 9
 426: PPUSH
 427: LD_STRING b13
 429: PPUSH
 430: CALL_OW 88
// Say ( Nefarem , b14 ) ;
 434: LD_EXP 6
 438: PPUSH
 439: LD_STRING b14
 441: PPUSH
 442: CALL_OW 88
// SayRadio ( DOC , b15 ) ;
 446: LD_EXP 8
 450: PPUSH
 451: LD_STRING b15
 453: PPUSH
 454: CALL_OW 94
// Say ( Nefarem , b16 ) ;
 458: LD_EXP 6
 462: PPUSH
 463: LD_STRING b16
 465: PPUSH
 466: CALL_OW 88
// Dialogueoff ;
 470: CALL_OW 7
// SaveForQuickRestart ;
 474: CALL_OW 22
// ChangeMissionObjectives ( M0 ) ;
 478: LD_STRING M0
 480: PPUSH
 481: CALL_OW 337
// game_speed := 4 ;
 485: LD_ADDR_OWVAR 65
 489: PUSH
 490: LD_INT 4
 492: ST_TO_ADDR
// Center = 0 ;
 493: LD_ADDR_EXP 14
 497: PUSH
 498: LD_INT 0
 500: ST_TO_ADDR
// InGameoff ;
 501: CALL_OW 9
// SetSide ( FilterUnitsInArea ( STREFA , [ [ f_side , 1 ] ] ) , 4 ) ;
 505: LD_INT 9
 507: PPUSH
 508: LD_INT 22
 510: PUSH
 511: LD_INT 1
 513: PUSH
 514: EMPTY
 515: LIST
 516: LIST
 517: PUSH
 518: EMPTY
 519: LIST
 520: PPUSH
 521: CALL_OW 70
 525: PPUSH
 526: LD_INT 4
 528: PPUSH
 529: CALL_OW 235
// SetSide ( AmericanPerson , 4 ) ;
 533: LD_EXP 12
 537: PPUSH
 538: LD_INT 4
 540: PPUSH
 541: CALL_OW 235
// SetSide ( [ bulwa1 , bulwa2 , dow , DOC , W1 , W2 ] , 4 ) ;
 545: LD_INT 141
 547: PUSH
 548: LD_INT 18
 550: PUSH
 551: LD_EXP 9
 555: PUSH
 556: LD_EXP 8
 560: PUSH
 561: LD_EXP 7
 565: PUSH
 566: LD_EXP 10
 570: PUSH
 571: EMPTY
 572: LIST
 573: LIST
 574: LIST
 575: LIST
 576: LIST
 577: LIST
 578: PPUSH
 579: LD_INT 4
 581: PPUSH
 582: CALL_OW 235
// Czasc = true ;
 586: LD_ADDR_EXP 15
 590: PUSH
 591: LD_INT 1
 593: ST_TO_ADDR
// wait ( 1 1$40 ) ;
 594: LD_INT 3500
 596: PPUSH
 597: CALL_OW 67
// ATAK1 ;
 601: CALL 3676 0 0
// wait ( 1 1$00 ) ;
 605: LD_INT 2100
 607: PPUSH
 608: CALL_OW 67
// Say ( Nefarem , b16a ) ;
 612: LD_EXP 6
 616: PPUSH
 617: LD_STRING b16a
 619: PPUSH
 620: CALL_OW 88
// wait ( 2 2$09 ) ;
 624: LD_INT 4515
 626: PPUSH
 627: CALL_OW 67
// wait ( 0 0$05 ) ;
 631: LD_INT 175
 633: PPUSH
 634: CALL_OW 67
// ATTACK2 ;
 638: CALL 4623 0 0
// AddComMoveXY ( [ A1 , A2 ] , 93 , 21 ) ;
 642: LD_EXP 17
 646: PUSH
 647: LD_EXP 18
 651: PUSH
 652: EMPTY
 653: LIST
 654: LIST
 655: PPUSH
 656: LD_INT 93
 658: PPUSH
 659: LD_INT 21
 661: PPUSH
 662: CALL_OW 171
// wait ( 1 1$00 ) ;
 666: LD_INT 2100
 668: PPUSH
 669: CALL_OW 67
// Say ( Doc , b17 ) ;
 673: LD_EXP 8
 677: PPUSH
 678: LD_STRING b17
 680: PPUSH
 681: CALL_OW 88
// Say ( Nefarem , b18 ) ;
 685: LD_EXP 6
 689: PPUSH
 690: LD_STRING b18
 692: PPUSH
 693: CALL_OW 88
// Say ( Doc , b19 ) ;
 697: LD_EXP 8
 701: PPUSH
 702: LD_STRING b19
 704: PPUSH
 705: CALL_OW 88
// wait ( 1 1$15 ) ;
 709: LD_INT 2625
 711: PPUSH
 712: CALL_OW 67
// POMOC ;
 716: CALL 5177 0 0
// end ;
 720: END
// every 1 trigger IsInArea ( POM1 , Area17 ) do
 721: LD_EXP 27
 725: PPUSH
 726: LD_INT 11
 728: PPUSH
 729: CALL_OW 308
 733: IFFALSE 883
 735: GO 737
 737: DISABLE
// begin Say ( POM1 , b20 ) ;
 738: LD_EXP 27
 742: PPUSH
 743: LD_STRING b20
 745: PPUSH
 746: CALL_OW 88
// Say ( Nefarem , b21 ) ;
 750: LD_EXP 6
 754: PPUSH
 755: LD_STRING b21
 757: PPUSH
 758: CALL_OW 88
// Say ( POM1 , b22 ) ;
 762: LD_EXP 27
 766: PPUSH
 767: LD_STRING b22
 769: PPUSH
 770: CALL_OW 88
// Say ( POM1 , b23 ) ;
 774: LD_EXP 27
 778: PPUSH
 779: LD_STRING b23
 781: PPUSH
 782: CALL_OW 88
// Say ( Nefarem , b24 ) ;
 786: LD_EXP 6
 790: PPUSH
 791: LD_STRING b24
 793: PPUSH
 794: CALL_OW 88
// Say ( POM1 , b25 ) ;
 798: LD_EXP 27
 802: PPUSH
 803: LD_STRING b25
 805: PPUSH
 806: CALL_OW 88
// Say ( Nefarem , b26 ) ;
 810: LD_EXP 6
 814: PPUSH
 815: LD_STRING b26
 817: PPUSH
 818: CALL_OW 88
// Say ( POM1 , b27 ) ;
 822: LD_EXP 27
 826: PPUSH
 827: LD_STRING b27
 829: PPUSH
 830: CALL_OW 88
// Say ( Nefarem , b28 ) ;
 834: LD_EXP 6
 838: PPUSH
 839: LD_STRING b28
 841: PPUSH
 842: CALL_OW 88
// SetSide ( [ POM1 , POM2 , POM3 ] , 4 ) ;
 846: LD_EXP 27
 850: PUSH
 851: LD_EXP 28
 855: PUSH
 856: LD_EXP 29
 860: PUSH
 861: EMPTY
 862: LIST
 863: LIST
 864: LIST
 865: PPUSH
 866: LD_INT 4
 868: PPUSH
 869: CALL_OW 235
// wait ( 1 1$50 ) ;
 873: LD_INT 3850
 875: PPUSH
 876: CALL_OW 67
// enable ( 110 ) ;
 880: LD_INT 110
 882: ENABLE_MARKED
// end ;
 883: END
// every 1 marked 110 do var losowanie ;
 884: GO 886
 886: DISABLE
 887: LD_INT 0
 889: PPUSH
// begin disable ;
 890: DISABLE
// Randomize ;
 891: CALL_OW 10
// case Rand ( 1 , 2 ) of 1 :
 895: LD_INT 1
 897: PPUSH
 898: LD_INT 2
 900: PPUSH
 901: CALL_OW 12
 905: PUSH
 906: LD_INT 1
 908: DOUBLE
 909: EQUAL
 910: IFTRUE 914
 912: GO 938
 914: POP
// begin Attack1 ;
 915: CALL 4025 0 0
// Ru_attack = Ru_Attack + 1 ;
 919: LD_ADDR_EXP 5
 923: PUSH
 924: LD_EXP 5
 928: PUSH
 929: LD_INT 1
 931: PLUS
 932: ST_TO_ADDR
// enable ( 120 ) ;
 933: LD_INT 120
 935: ENABLE_MARKED
// end ; 2 :
 936: GO 971
 938: LD_INT 2
 940: DOUBLE
 941: EQUAL
 942: IFTRUE 946
 944: GO 970
 946: POP
// begin Attack2 ;
 947: CALL 4623 0 0
// Ru_attack = Ru_Attack + 1 ;
 951: LD_ADDR_EXP 5
 955: PUSH
 956: LD_EXP 5
 960: PUSH
 961: LD_INT 1
 963: PLUS
 964: ST_TO_ADDR
// enable ( 120 ) ;
 965: LD_INT 120
 967: ENABLE_MARKED
// end ; end ;
 968: GO 971
 970: POP
// end ;
 971: PPOPN 1
 973: END
// every 0 0$20 trigger FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) = 0 marked 120 do
 974: LD_INT 22
 976: PUSH
 977: LD_INT 6
 979: PUSH
 980: EMPTY
 981: LIST
 982: LIST
 983: PUSH
 984: LD_INT 21
 986: PUSH
 987: LD_INT 1
 989: PUSH
 990: EMPTY
 991: LIST
 992: LIST
 993: PUSH
 994: EMPTY
 995: LIST
 996: LIST
 997: PPUSH
 998: CALL_OW 69
1002: PUSH
1003: LD_INT 0
1005: EQUAL
1006: IFFALSE 1015
1008: GO 1010
1010: DISABLE
// begin enable ( 110 ) ;
1011: LD_INT 110
1013: ENABLE_MARKED
// disable ;
1014: DISABLE
// end ;
1015: END
// every 0 0$01 do
1016: GO 1018
1018: DISABLE
// begin enable ;
1019: ENABLE
// if Ru_attack = [ 4 , 5 , 7 ] [ Difficulty ] then
1020: LD_EXP 5
1024: PUSH
1025: LD_INT 4
1027: PUSH
1028: LD_INT 5
1030: PUSH
1031: LD_INT 7
1033: PUSH
1034: EMPTY
1035: LIST
1036: LIST
1037: LIST
1038: PUSH
1039: LD_OWVAR 67
1043: ARRAY
1044: EQUAL
1045: IFFALSE 1310
// begin disable ( 110 ) ;
1047: LD_INT 110
1049: DISABLE_MARKED
// disable ( 120 ) ;
1050: LD_INT 120
1052: DISABLE_MARKED
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) = 0 then
1053: LD_INT 22
1055: PUSH
1056: LD_INT 6
1058: PUSH
1059: EMPTY
1060: LIST
1061: LIST
1062: PUSH
1063: LD_INT 21
1065: PUSH
1066: LD_INT 1
1068: PUSH
1069: EMPTY
1070: LIST
1071: LIST
1072: PUSH
1073: EMPTY
1074: LIST
1075: LIST
1076: PPUSH
1077: CALL_OW 69
1081: PUSH
1082: LD_INT 0
1084: EQUAL
1085: IFFALSE 1310
// begin DialogueOn ;
1087: CALL_OW 6
// SayRadio ( PULK , b29 ) ;
1091: LD_EXP 11
1095: PPUSH
1096: LD_STRING b29
1098: PPUSH
1099: CALL_OW 94
// SayRadio ( Nefarem , b30 ) ;
1103: LD_EXP 6
1107: PPUSH
1108: LD_STRING b30
1110: PPUSH
1111: CALL_OW 94
// SayRadio ( PULK , b31 ) ;
1115: LD_EXP 11
1119: PPUSH
1120: LD_STRING b31
1122: PPUSH
1123: CALL_OW 94
// SayRadio ( Nefarem , b32 ) ;
1127: LD_EXP 6
1131: PPUSH
1132: LD_STRING b32
1134: PPUSH
1135: CALL_OW 94
// SayRadio ( PULK , b33 ) ;
1139: LD_EXP 11
1143: PPUSH
1144: LD_STRING b33
1146: PPUSH
1147: CALL_OW 94
// SayRadio ( Nefarem , b34 ) ;
1151: LD_EXP 6
1155: PPUSH
1156: LD_STRING b34
1158: PPUSH
1159: CALL_OW 94
// SayRadio ( PULK , b35 ) ;
1163: LD_EXP 11
1167: PPUSH
1168: LD_STRING b35
1170: PPUSH
1171: CALL_OW 94
// SayRadio ( Nefarem , b36 ) ;
1175: LD_EXP 6
1179: PPUSH
1180: LD_STRING b36
1182: PPUSH
1183: CALL_OW 94
// DialogueOff ;
1187: CALL_OW 7
// AddExperience ( Nefarem , skill_combat , 2500 ) ;
1191: LD_EXP 6
1195: PPUSH
1196: LD_INT 1
1198: PPUSH
1199: LD_INT 2500
1201: PPUSH
1202: CALL_OW 492
// AddExperience ( Nefarem , skill_engineering , 1500 ) ;
1206: LD_EXP 6
1210: PPUSH
1211: LD_INT 2
1213: PPUSH
1214: LD_INT 1500
1216: PPUSH
1217: CALL_OW 492
// AddExperience ( Nefarem , skill_mechanical , 1000 ) ;
1221: LD_EXP 6
1225: PPUSH
1226: LD_INT 3
1228: PPUSH
1229: LD_INT 1000
1231: PPUSH
1232: CALL_OW 492
// AddExperience ( Nefarem , skill_scientistic , 1000 ) ;
1236: LD_EXP 6
1240: PPUSH
1241: LD_INT 4
1243: PPUSH
1244: LD_INT 1000
1246: PPUSH
1247: CALL_OW 492
// RewardPeople ( Nefarem ) ;
1251: LD_EXP 6
1255: PPUSH
1256: CALL_OW 43
// SaveCharacters ( Nefarem , Nefarem ) ;
1260: LD_EXP 6
1264: PPUSH
1265: LD_STRING Nefarem
1267: PPUSH
1268: CALL_OW 38
// SaveCharacters ( DOC , DOC ) ;
1272: LD_EXP 8
1276: PPUSH
1277: LD_STRING DOC
1279: PPUSH
1280: CALL_OW 38
// SaveCharacters ( PULK , PULK ) ;
1284: LD_EXP 11
1288: PPUSH
1289: LD_STRING PULK
1291: PPUSH
1292: CALL_OW 38
// medale ;
1296: CALL 5610 0 0
// ChangeMap ( 1 , __am/03_cont_cont ) ;
1300: LD_INT 1
1302: PPUSH
1303: LD_STRING __am/03_cont_cont
1305: PPUSH
1306: CALL_OW 340
// end ; end ; end ; end_of_file
1310: END
// export Nefarem , W1 , DOC , dow , W2 , PULK ; export function Ludzie ; begin
1311: LD_INT 0
1313: PPUSH
// uc_side = 4 ;
1314: LD_ADDR_OWVAR 20
1318: PUSH
1319: LD_INT 4
1321: ST_TO_ADDR
// uc_nation = 1 ;
1322: LD_ADDR_OWVAR 21
1326: PUSH
1327: LD_INT 1
1329: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
1330: LD_ADDR_EXP 6
1334: PUSH
1335: LD_STRING Nefarem
1337: PPUSH
1338: CALL_OW 34
1342: ST_TO_ADDR
// PlaceHumanInUnit ( Nefarem , wot ) ;
1343: LD_EXP 6
1347: PPUSH
1348: LD_INT 181
1350: PPUSH
1351: CALL_OW 52
// uc_side = 1 ;
1355: LD_ADDR_OWVAR 20
1359: PUSH
1360: LD_INT 1
1362: ST_TO_ADDR
// uc_nation = 1 ;
1363: LD_ADDR_OWVAR 21
1367: PUSH
1368: LD_INT 1
1370: ST_TO_ADDR
// hc_gallery =  ;
1371: LD_ADDR_OWVAR 33
1375: PUSH
1376: LD_STRING 
1378: ST_TO_ADDR
// hc_name =  ;
1379: LD_ADDR_OWVAR 26
1383: PUSH
1384: LD_STRING 
1386: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1387: LD_ADDR_OWVAR 29
1391: PUSH
1392: LD_INT 9
1394: PPUSH
1395: LD_INT 11
1397: PPUSH
1398: CALL_OW 12
1402: PUSH
1403: LD_INT 10
1405: PPUSH
1406: LD_INT 12
1408: PPUSH
1409: CALL_OW 12
1413: PUSH
1414: EMPTY
1415: LIST
1416: LIST
1417: ST_TO_ADDR
// hc_skills = [ 3 , Rand ( 0 , 1 ) , Rand ( 0 , 3 ) , Rand ( 0 , 1 ) ] ;
1418: LD_ADDR_OWVAR 31
1422: PUSH
1423: LD_INT 3
1425: PUSH
1426: LD_INT 0
1428: PPUSH
1429: LD_INT 1
1431: PPUSH
1432: CALL_OW 12
1436: PUSH
1437: LD_INT 0
1439: PPUSH
1440: LD_INT 3
1442: PPUSH
1443: CALL_OW 12
1447: PUSH
1448: LD_INT 0
1450: PPUSH
1451: LD_INT 1
1453: PPUSH
1454: CALL_OW 12
1458: PUSH
1459: EMPTY
1460: LIST
1461: LIST
1462: LIST
1463: LIST
1464: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1465: LD_ADDR_OWVAR 27
1469: PUSH
1470: LD_INT 1
1472: PPUSH
1473: LD_INT 2
1475: PPUSH
1476: CALL_OW 12
1480: ST_TO_ADDR
// hc_class = 1 ;
1481: LD_ADDR_OWVAR 28
1485: PUSH
1486: LD_INT 1
1488: ST_TO_ADDR
// hc_importance = 10 ;
1489: LD_ADDR_OWVAR 32
1493: PUSH
1494: LD_INT 10
1496: ST_TO_ADDR
// W1 = CreateHuman ;
1497: LD_ADDR_EXP 7
1501: PUSH
1502: CALL_OW 44
1506: ST_TO_ADDR
// PlaceHumanInUnit ( W1 , bunk1 ) ;
1507: LD_EXP 7
1511: PPUSH
1512: LD_INT 42
1514: PPUSH
1515: CALL_OW 52
// uc_side = 1 ;
1519: LD_ADDR_OWVAR 20
1523: PUSH
1524: LD_INT 1
1526: ST_TO_ADDR
// uc_nation = 1 ;
1527: LD_ADDR_OWVAR 21
1531: PUSH
1532: LD_INT 1
1534: ST_TO_ADDR
// hc_gallery =  ;
1535: LD_ADDR_OWVAR 33
1539: PUSH
1540: LD_STRING 
1542: ST_TO_ADDR
// hc_name = Dr. Nawnicki ;
1543: LD_ADDR_OWVAR 26
1547: PUSH
1548: LD_STRING Dr. Nawnicki
1550: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1551: LD_ADDR_OWVAR 29
1555: PUSH
1556: LD_INT 9
1558: PPUSH
1559: LD_INT 11
1561: PPUSH
1562: CALL_OW 12
1566: PUSH
1567: LD_INT 10
1569: PPUSH
1570: LD_INT 12
1572: PPUSH
1573: CALL_OW 12
1577: PUSH
1578: EMPTY
1579: LIST
1580: LIST
1581: ST_TO_ADDR
// hc_skills = [ 2 , Rand ( 1 , 2 ) , Rand ( 2 , 4 ) , 6 ] ;
1582: LD_ADDR_OWVAR 31
1586: PUSH
1587: LD_INT 2
1589: PUSH
1590: LD_INT 1
1592: PPUSH
1593: LD_INT 2
1595: PPUSH
1596: CALL_OW 12
1600: PUSH
1601: LD_INT 2
1603: PPUSH
1604: LD_INT 4
1606: PPUSH
1607: CALL_OW 12
1611: PUSH
1612: LD_INT 6
1614: PUSH
1615: EMPTY
1616: LIST
1617: LIST
1618: LIST
1619: LIST
1620: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1621: LD_ADDR_OWVAR 27
1625: PUSH
1626: LD_INT 1
1628: PPUSH
1629: LD_INT 2
1631: PPUSH
1632: CALL_OW 12
1636: ST_TO_ADDR
// hc_class = 4 ;
1637: LD_ADDR_OWVAR 28
1641: PUSH
1642: LD_INT 4
1644: ST_TO_ADDR
// hc_importance = 10 ;
1645: LD_ADDR_OWVAR 32
1649: PUSH
1650: LD_INT 10
1652: ST_TO_ADDR
// DOC = CreateHuman ;
1653: LD_ADDR_EXP 8
1657: PUSH
1658: CALL_OW 44
1662: ST_TO_ADDR
// PlaceHumanInUnit ( DOC , lab1 ) ;
1663: LD_EXP 8
1667: PPUSH
1668: LD_INT 8
1670: PPUSH
1671: CALL_OW 52
// uc_side = 1 ;
1675: LD_ADDR_OWVAR 20
1679: PUSH
1680: LD_INT 1
1682: ST_TO_ADDR
// uc_nation = 1 ;
1683: LD_ADDR_OWVAR 21
1687: PUSH
1688: LD_INT 1
1690: ST_TO_ADDR
// hc_gallery =  ;
1691: LD_ADDR_OWVAR 33
1695: PUSH
1696: LD_STRING 
1698: ST_TO_ADDR
// hc_name = Steve ;
1699: LD_ADDR_OWVAR 26
1703: PUSH
1704: LD_STRING Steve
1706: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1707: LD_ADDR_OWVAR 29
1711: PUSH
1712: LD_INT 9
1714: PPUSH
1715: LD_INT 11
1717: PPUSH
1718: CALL_OW 12
1722: PUSH
1723: LD_INT 10
1725: PPUSH
1726: LD_INT 12
1728: PPUSH
1729: CALL_OW 12
1733: PUSH
1734: EMPTY
1735: LIST
1736: LIST
1737: ST_TO_ADDR
// hc_skills = [ 4 , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) , Rand ( 0 , 3 ) ] ;
1738: LD_ADDR_OWVAR 31
1742: PUSH
1743: LD_INT 4
1745: PUSH
1746: LD_INT 0
1748: PPUSH
1749: LD_INT 3
1751: PPUSH
1752: CALL_OW 12
1756: PUSH
1757: LD_INT 0
1759: PPUSH
1760: LD_INT 2
1762: PPUSH
1763: CALL_OW 12
1767: PUSH
1768: LD_INT 0
1770: PPUSH
1771: LD_INT 3
1773: PPUSH
1774: CALL_OW 12
1778: PUSH
1779: EMPTY
1780: LIST
1781: LIST
1782: LIST
1783: LIST
1784: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1785: LD_ADDR_OWVAR 27
1789: PUSH
1790: LD_INT 1
1792: PPUSH
1793: LD_INT 2
1795: PPUSH
1796: CALL_OW 12
1800: ST_TO_ADDR
// hc_class = 1 ;
1801: LD_ADDR_OWVAR 28
1805: PUSH
1806: LD_INT 1
1808: ST_TO_ADDR
// hc_importance = 10 ;
1809: LD_ADDR_OWVAR 32
1813: PUSH
1814: LD_INT 10
1816: ST_TO_ADDR
// dow = CreateHuman ;
1817: LD_ADDR_EXP 9
1821: PUSH
1822: CALL_OW 44
1826: ST_TO_ADDR
// PlaceUnitArea ( dow , czlowieki , false ) ;
1827: LD_EXP 9
1831: PPUSH
1832: LD_INT 2
1834: PPUSH
1835: LD_INT 0
1837: PPUSH
1838: CALL_OW 49
// uc_side = 1 ;
1842: LD_ADDR_OWVAR 20
1846: PUSH
1847: LD_INT 1
1849: ST_TO_ADDR
// uc_nation = 1 ;
1850: LD_ADDR_OWVAR 21
1854: PUSH
1855: LD_INT 1
1857: ST_TO_ADDR
// hc_gallery =  ;
1858: LD_ADDR_OWVAR 33
1862: PUSH
1863: LD_STRING 
1865: ST_TO_ADDR
// hc_name =  ;
1866: LD_ADDR_OWVAR 26
1870: PUSH
1871: LD_STRING 
1873: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1874: LD_ADDR_OWVAR 29
1878: PUSH
1879: LD_INT 9
1881: PPUSH
1882: LD_INT 11
1884: PPUSH
1885: CALL_OW 12
1889: PUSH
1890: LD_INT 10
1892: PPUSH
1893: LD_INT 12
1895: PPUSH
1896: CALL_OW 12
1900: PUSH
1901: EMPTY
1902: LIST
1903: LIST
1904: ST_TO_ADDR
// hc_skills = [ 2 , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) , Rand ( 0 , 3 ) ] ;
1905: LD_ADDR_OWVAR 31
1909: PUSH
1910: LD_INT 2
1912: PUSH
1913: LD_INT 0
1915: PPUSH
1916: LD_INT 3
1918: PPUSH
1919: CALL_OW 12
1923: PUSH
1924: LD_INT 0
1926: PPUSH
1927: LD_INT 2
1929: PPUSH
1930: CALL_OW 12
1934: PUSH
1935: LD_INT 0
1937: PPUSH
1938: LD_INT 3
1940: PPUSH
1941: CALL_OW 12
1945: PUSH
1946: EMPTY
1947: LIST
1948: LIST
1949: LIST
1950: LIST
1951: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1952: LD_ADDR_OWVAR 27
1956: PUSH
1957: LD_INT 1
1959: PPUSH
1960: LD_INT 2
1962: PPUSH
1963: CALL_OW 12
1967: ST_TO_ADDR
// hc_class = 1 ;
1968: LD_ADDR_OWVAR 28
1972: PUSH
1973: LD_INT 1
1975: ST_TO_ADDR
// hc_importance = 10 ;
1976: LD_ADDR_OWVAR 32
1980: PUSH
1981: LD_INT 10
1983: ST_TO_ADDR
// W2 = CreateHuman ;
1984: LD_ADDR_EXP 10
1988: PUSH
1989: CALL_OW 44
1993: ST_TO_ADDR
// PlaceUnitArea ( W2 , czlowieki , false ) ;
1994: LD_EXP 10
1998: PPUSH
1999: LD_INT 2
2001: PPUSH
2002: LD_INT 0
2004: PPUSH
2005: CALL_OW 49
// uc_side = 1 ;
2009: LD_ADDR_OWVAR 20
2013: PUSH
2014: LD_INT 1
2016: ST_TO_ADDR
// uc_nation = 1 ;
2017: LD_ADDR_OWVAR 21
2021: PUSH
2022: LD_INT 1
2024: ST_TO_ADDR
// PULK := CreateCharacter ( PULK ) ;
2025: LD_ADDR_EXP 11
2029: PUSH
2030: LD_STRING PULK
2032: PPUSH
2033: CALL_OW 34
2037: ST_TO_ADDR
// end ; end_of_file
2038: LD_VAR 0 1
2042: RET
// export AmericanPerson , Am1_Turret ; export function PrepareAmerican ; var am_turret , i , un , b , x1 , y1 , k , l , level ; begin
2043: LD_INT 0
2045: PPUSH
2046: PPUSH
2047: PPUSH
2048: PPUSH
2049: PPUSH
2050: PPUSH
2051: PPUSH
2052: PPUSH
2053: PPUSH
2054: PPUSH
// Am1_Turret := FilterUnitsInArea ( Area07 , [ [ f_side , 1 ] , [ f_btype , b_breastwork ] ] ) ;
2055: LD_ADDR_EXP 13
2059: PUSH
2060: LD_INT 1
2062: PPUSH
2063: LD_INT 22
2065: PUSH
2066: LD_INT 1
2068: PUSH
2069: EMPTY
2070: LIST
2071: LIST
2072: PUSH
2073: LD_INT 30
2075: PUSH
2076: LD_INT 31
2078: PUSH
2079: EMPTY
2080: LIST
2081: LIST
2082: PUSH
2083: EMPTY
2084: LIST
2085: LIST
2086: PPUSH
2087: CALL_OW 70
2091: ST_TO_ADDR
// uc_side = 1 ;
2092: LD_ADDR_OWVAR 20
2096: PUSH
2097: LD_INT 1
2099: ST_TO_ADDR
// uc_nation = 1 ;
2100: LD_ADDR_OWVAR 21
2104: PUSH
2105: LD_INT 1
2107: ST_TO_ADDR
// hc_gallery =  ;
2108: LD_ADDR_OWVAR 33
2112: PUSH
2113: LD_STRING 
2115: ST_TO_ADDR
// hc_name =  ;
2116: LD_ADDR_OWVAR 26
2120: PUSH
2121: LD_STRING 
2123: ST_TO_ADDR
// for i in Am1_Turret do
2124: LD_ADDR_VAR 0 3
2128: PUSH
2129: LD_EXP 13
2133: PUSH
2134: FOR_IN
2135: IFFALSE 2323
// begin if IsInUnit ( i ) = 0 then
2137: LD_VAR 0 3
2141: PPUSH
2142: CALL_OW 310
2146: PUSH
2147: LD_INT 0
2149: EQUAL
2150: IFFALSE 2321
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2152: LD_ADDR_VAR 0 10
2156: PUSH
2157: LD_INT 4
2159: PUSH
2160: LD_INT 4
2162: PUSH
2163: LD_INT 4
2165: PUSH
2166: EMPTY
2167: LIST
2168: LIST
2169: LIST
2170: PUSH
2171: LD_OWVAR 67
2175: ARRAY
2176: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2177: LD_ADDR_OWVAR 29
2181: PUSH
2182: LD_INT 9
2184: PPUSH
2185: LD_INT 11
2187: PPUSH
2188: CALL_OW 12
2192: PUSH
2193: LD_INT 10
2195: PPUSH
2196: LD_INT 12
2198: PPUSH
2199: CALL_OW 12
2203: PUSH
2204: EMPTY
2205: LIST
2206: LIST
2207: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 3 ) , Rand ( 1 , 2 ) , Rand ( 0 , 2 ) ] ;
2208: LD_ADDR_OWVAR 31
2212: PUSH
2213: LD_VAR 0 10
2217: PUSH
2218: LD_INT 0
2220: PPUSH
2221: LD_INT 3
2223: PPUSH
2224: CALL_OW 12
2228: PUSH
2229: LD_INT 1
2231: PPUSH
2232: LD_INT 2
2234: PPUSH
2235: CALL_OW 12
2239: PUSH
2240: LD_INT 0
2242: PPUSH
2243: LD_INT 2
2245: PPUSH
2246: CALL_OW 12
2250: PUSH
2251: EMPTY
2252: LIST
2253: LIST
2254: LIST
2255: LIST
2256: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2257: LD_ADDR_OWVAR 27
2261: PUSH
2262: LD_INT 1
2264: PPUSH
2265: LD_INT 2
2267: PPUSH
2268: CALL_OW 12
2272: ST_TO_ADDR
// hc_class = 1 ;
2273: LD_ADDR_OWVAR 28
2277: PUSH
2278: LD_INT 1
2280: ST_TO_ADDR
// un := CreateHuman ;
2281: LD_ADDR_VAR 0 4
2285: PUSH
2286: CALL_OW 44
2290: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2291: LD_VAR 0 4
2295: PPUSH
2296: LD_VAR 0 3
2300: PPUSH
2301: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2305: LD_ADDR_EXP 12
2309: PUSH
2310: LD_EXP 12
2314: PUSH
2315: LD_VAR 0 4
2319: ADD
2320: ST_TO_ADDR
// end ; end ;
2321: GO 2134
2323: POP
2324: POP
// for i in fab1 do
2325: LD_ADDR_VAR 0 3
2329: PUSH
2330: LD_INT 4
2332: PUSH
2333: FOR_IN
2334: IFFALSE 2584
// begin l = 0 ;
2336: LD_ADDR_VAR 0 9
2340: PUSH
2341: LD_INT 0
2343: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2344: LD_VAR 0 3
2348: PPUSH
2349: CALL_OW 310
2353: PUSH
2354: LD_INT 0
2356: EQUAL
2357: IFFALSE 2582
// begin Level = [ 5 , 5 , 5 ] [ Difficulty ] ;
2359: LD_ADDR_VAR 0 10
2363: PUSH
2364: LD_INT 5
2366: PUSH
2367: LD_INT 5
2369: PUSH
2370: LD_INT 5
2372: PUSH
2373: EMPTY
2374: LIST
2375: LIST
2376: LIST
2377: PUSH
2378: LD_OWVAR 67
2382: ARRAY
2383: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2384: LD_ADDR_OWVAR 20
2388: PUSH
2389: LD_INT 1
2391: ST_TO_ADDR
// uc_nation = 1 ;
2392: LD_ADDR_OWVAR 21
2396: PUSH
2397: LD_INT 1
2399: ST_TO_ADDR
// hc_gallery =  ;
2400: LD_ADDR_OWVAR 33
2404: PUSH
2405: LD_STRING 
2407: ST_TO_ADDR
// hc_name =  ;
2408: LD_ADDR_OWVAR 26
2412: PUSH
2413: LD_STRING 
2415: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2416: LD_ADDR_OWVAR 29
2420: PUSH
2421: LD_INT 9
2423: PPUSH
2424: LD_INT 11
2426: PPUSH
2427: CALL_OW 12
2431: PUSH
2432: LD_INT 10
2434: PPUSH
2435: LD_INT 12
2437: PPUSH
2438: CALL_OW 12
2442: PUSH
2443: EMPTY
2444: LIST
2445: LIST
2446: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Level , Rand ( 0 , 2 ) ] ;
2447: LD_ADDR_OWVAR 31
2451: PUSH
2452: LD_INT 0
2454: PPUSH
2455: LD_INT 2
2457: PPUSH
2458: CALL_OW 12
2462: PUSH
2463: LD_INT 0
2465: PPUSH
2466: LD_INT 2
2468: PPUSH
2469: CALL_OW 12
2473: PUSH
2474: LD_VAR 0 10
2478: PUSH
2479: LD_INT 0
2481: PPUSH
2482: LD_INT 2
2484: PPUSH
2485: CALL_OW 12
2489: PUSH
2490: EMPTY
2491: LIST
2492: LIST
2493: LIST
2494: LIST
2495: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2496: LD_ADDR_OWVAR 27
2500: PUSH
2501: LD_INT 1
2503: PPUSH
2504: LD_INT 2
2506: PPUSH
2507: CALL_OW 12
2511: ST_TO_ADDR
// hc_class = 3 ;
2512: LD_ADDR_OWVAR 28
2516: PUSH
2517: LD_INT 3
2519: ST_TO_ADDR
// un = CreateHuman ;
2520: LD_ADDR_VAR 0 4
2524: PUSH
2525: CALL_OW 44
2529: ST_TO_ADDR
// PlaceHumanInUnit ( un , fab1 ) ;
2530: LD_VAR 0 4
2534: PPUSH
2535: LD_INT 4
2537: PPUSH
2538: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2542: LD_ADDR_EXP 12
2546: PUSH
2547: LD_EXP 12
2551: PUSH
2552: LD_VAR 0 4
2556: ADD
2557: ST_TO_ADDR
// l = l + 1 ;
2558: LD_ADDR_VAR 0 9
2562: PUSH
2563: LD_VAR 0 9
2567: PUSH
2568: LD_INT 1
2570: PLUS
2571: ST_TO_ADDR
// end until l = 2 ;
2572: LD_VAR 0 9
2576: PUSH
2577: LD_INT 2
2579: EQUAL
2580: IFFALSE 2384
// end ; end ;
2582: GO 2333
2584: POP
2585: POP
// for i in zbroja1 do
2586: LD_ADDR_VAR 0 3
2590: PUSH
2591: LD_INT 12
2593: PUSH
2594: FOR_IN
2595: IFFALSE 2845
// begin l = 0 ;
2597: LD_ADDR_VAR 0 9
2601: PUSH
2602: LD_INT 0
2604: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2605: LD_VAR 0 3
2609: PPUSH
2610: CALL_OW 310
2614: PUSH
2615: LD_INT 0
2617: EQUAL
2618: IFFALSE 2843
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2620: LD_ADDR_VAR 0 10
2624: PUSH
2625: LD_INT 4
2627: PUSH
2628: LD_INT 4
2630: PUSH
2631: LD_INT 4
2633: PUSH
2634: EMPTY
2635: LIST
2636: LIST
2637: LIST
2638: PUSH
2639: LD_OWVAR 67
2643: ARRAY
2644: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2645: LD_ADDR_OWVAR 20
2649: PUSH
2650: LD_INT 1
2652: ST_TO_ADDR
// uc_nation = 1 ;
2653: LD_ADDR_OWVAR 21
2657: PUSH
2658: LD_INT 1
2660: ST_TO_ADDR
// hc_gallery =  ;
2661: LD_ADDR_OWVAR 33
2665: PUSH
2666: LD_STRING 
2668: ST_TO_ADDR
// hc_name =  ;
2669: LD_ADDR_OWVAR 26
2673: PUSH
2674: LD_STRING 
2676: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2677: LD_ADDR_OWVAR 29
2681: PUSH
2682: LD_INT 9
2684: PPUSH
2685: LD_INT 11
2687: PPUSH
2688: CALL_OW 12
2692: PUSH
2693: LD_INT 10
2695: PPUSH
2696: LD_INT 12
2698: PPUSH
2699: CALL_OW 12
2703: PUSH
2704: EMPTY
2705: LIST
2706: LIST
2707: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 2 ) , Rand ( 1 , 4 ) , Rand ( 0 , 2 ) ] ;
2708: LD_ADDR_OWVAR 31
2712: PUSH
2713: LD_VAR 0 10
2717: PUSH
2718: LD_INT 0
2720: PPUSH
2721: LD_INT 2
2723: PPUSH
2724: CALL_OW 12
2728: PUSH
2729: LD_INT 1
2731: PPUSH
2732: LD_INT 4
2734: PPUSH
2735: CALL_OW 12
2739: PUSH
2740: LD_INT 0
2742: PPUSH
2743: LD_INT 2
2745: PPUSH
2746: CALL_OW 12
2750: PUSH
2751: EMPTY
2752: LIST
2753: LIST
2754: LIST
2755: LIST
2756: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2757: LD_ADDR_OWVAR 27
2761: PUSH
2762: LD_INT 1
2764: PPUSH
2765: LD_INT 2
2767: PPUSH
2768: CALL_OW 12
2772: ST_TO_ADDR
// hc_class = 1 ;
2773: LD_ADDR_OWVAR 28
2777: PUSH
2778: LD_INT 1
2780: ST_TO_ADDR
// un = CreateHuman ;
2781: LD_ADDR_VAR 0 4
2785: PUSH
2786: CALL_OW 44
2790: ST_TO_ADDR
// PlaceHumanInUnit ( un , zbroja1 ) ;
2791: LD_VAR 0 4
2795: PPUSH
2796: LD_INT 12
2798: PPUSH
2799: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2803: LD_ADDR_EXP 12
2807: PUSH
2808: LD_EXP 12
2812: PUSH
2813: LD_VAR 0 4
2817: ADD
2818: ST_TO_ADDR
// l = l + 1 ;
2819: LD_ADDR_VAR 0 9
2823: PUSH
2824: LD_VAR 0 9
2828: PUSH
2829: LD_INT 1
2831: PLUS
2832: ST_TO_ADDR
// end until l = 4 ;
2833: LD_VAR 0 9
2837: PUSH
2838: LD_INT 4
2840: EQUAL
2841: IFFALSE 2645
// end ; end ;
2843: GO 2594
2845: POP
2846: POP
// for i in depot1 do
2847: LD_ADDR_VAR 0 3
2851: PUSH
2852: LD_INT 1
2854: PUSH
2855: FOR_IN
2856: IFFALSE 3106
// begin l = 0 ;
2858: LD_ADDR_VAR 0 9
2862: PUSH
2863: LD_INT 0
2865: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2866: LD_VAR 0 3
2870: PPUSH
2871: CALL_OW 310
2875: PUSH
2876: LD_INT 0
2878: EQUAL
2879: IFFALSE 3104
// begin Level = [ 5 , 5 , 5 ] [ Difficulty ] ;
2881: LD_ADDR_VAR 0 10
2885: PUSH
2886: LD_INT 5
2888: PUSH
2889: LD_INT 5
2891: PUSH
2892: LD_INT 5
2894: PUSH
2895: EMPTY
2896: LIST
2897: LIST
2898: LIST
2899: PUSH
2900: LD_OWVAR 67
2904: ARRAY
2905: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2906: LD_ADDR_OWVAR 20
2910: PUSH
2911: LD_INT 1
2913: ST_TO_ADDR
// uc_nation = 1 ;
2914: LD_ADDR_OWVAR 21
2918: PUSH
2919: LD_INT 1
2921: ST_TO_ADDR
// hc_gallery =  ;
2922: LD_ADDR_OWVAR 33
2926: PUSH
2927: LD_STRING 
2929: ST_TO_ADDR
// hc_name =  ;
2930: LD_ADDR_OWVAR 26
2934: PUSH
2935: LD_STRING 
2937: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2938: LD_ADDR_OWVAR 29
2942: PUSH
2943: LD_INT 9
2945: PPUSH
2946: LD_INT 11
2948: PPUSH
2949: CALL_OW 12
2953: PUSH
2954: LD_INT 10
2956: PPUSH
2957: LD_INT 12
2959: PPUSH
2960: CALL_OW 12
2964: PUSH
2965: EMPTY
2966: LIST
2967: LIST
2968: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Level , Rand ( 2 , 3 ) , Rand ( 0 , 2 ) ] ;
2969: LD_ADDR_OWVAR 31
2973: PUSH
2974: LD_INT 0
2976: PPUSH
2977: LD_INT 3
2979: PPUSH
2980: CALL_OW 12
2984: PUSH
2985: LD_VAR 0 10
2989: PUSH
2990: LD_INT 2
2992: PPUSH
2993: LD_INT 3
2995: PPUSH
2996: CALL_OW 12
3000: PUSH
3001: LD_INT 0
3003: PPUSH
3004: LD_INT 2
3006: PPUSH
3007: CALL_OW 12
3011: PUSH
3012: EMPTY
3013: LIST
3014: LIST
3015: LIST
3016: LIST
3017: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3018: LD_ADDR_OWVAR 27
3022: PUSH
3023: LD_INT 1
3025: PPUSH
3026: LD_INT 2
3028: PPUSH
3029: CALL_OW 12
3033: ST_TO_ADDR
// hc_class = 2 ;
3034: LD_ADDR_OWVAR 28
3038: PUSH
3039: LD_INT 2
3041: ST_TO_ADDR
// un = CreateHuman ;
3042: LD_ADDR_VAR 0 4
3046: PUSH
3047: CALL_OW 44
3051: ST_TO_ADDR
// PlaceHumanInUnit ( un , depot1 ) ;
3052: LD_VAR 0 4
3056: PPUSH
3057: LD_INT 1
3059: PPUSH
3060: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
3064: LD_ADDR_EXP 12
3068: PUSH
3069: LD_EXP 12
3073: PUSH
3074: LD_VAR 0 4
3078: ADD
3079: ST_TO_ADDR
// l = l + 1 ;
3080: LD_ADDR_VAR 0 9
3084: PUSH
3085: LD_VAR 0 9
3089: PUSH
3090: LD_INT 1
3092: PLUS
3093: ST_TO_ADDR
// end until l = 1 ;
3094: LD_VAR 0 9
3098: PUSH
3099: LD_INT 1
3101: EQUAL
3102: IFFALSE 2906
// end ; end ;
3104: GO 2855
3106: POP
3107: POP
// for i in lab1 do
3108: LD_ADDR_VAR 0 3
3112: PUSH
3113: LD_INT 8
3115: PUSH
3116: FOR_IN
3117: IFFALSE 3319
// begin if IsInUnit ( i ) = 0 then
3119: LD_VAR 0 3
3123: PPUSH
3124: CALL_OW 310
3128: PUSH
3129: LD_INT 0
3131: EQUAL
3132: IFFALSE 3317
// begin Level = [ 2 , 2 , 2 ] [ Difficulty ] ;
3134: LD_ADDR_VAR 0 10
3138: PUSH
3139: LD_INT 2
3141: PUSH
3142: LD_INT 2
3144: PUSH
3145: LD_INT 2
3147: PUSH
3148: EMPTY
3149: LIST
3150: LIST
3151: LIST
3152: PUSH
3153: LD_OWVAR 67
3157: ARRAY
3158: ST_TO_ADDR
// uc_side = 1 ;
3159: LD_ADDR_OWVAR 20
3163: PUSH
3164: LD_INT 1
3166: ST_TO_ADDR
// uc_nation = 1 ;
3167: LD_ADDR_OWVAR 21
3171: PUSH
3172: LD_INT 1
3174: ST_TO_ADDR
// hc_gallery =  ;
3175: LD_ADDR_OWVAR 33
3179: PUSH
3180: LD_STRING 
3182: ST_TO_ADDR
// hc_name =  ;
3183: LD_ADDR_OWVAR 26
3187: PUSH
3188: LD_STRING 
3190: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3191: LD_ADDR_OWVAR 29
3195: PUSH
3196: LD_INT 9
3198: PPUSH
3199: LD_INT 11
3201: PPUSH
3202: CALL_OW 12
3206: PUSH
3207: LD_INT 10
3209: PPUSH
3210: LD_INT 12
3212: PPUSH
3213: CALL_OW 12
3217: PUSH
3218: EMPTY
3219: LIST
3220: LIST
3221: ST_TO_ADDR
// hc_skills = [ 0 , 1 , Rand ( 1 , 4 ) , Level ] ;
3222: LD_ADDR_OWVAR 31
3226: PUSH
3227: LD_INT 0
3229: PUSH
3230: LD_INT 1
3232: PUSH
3233: LD_INT 1
3235: PPUSH
3236: LD_INT 4
3238: PPUSH
3239: CALL_OW 12
3243: PUSH
3244: LD_VAR 0 10
3248: PUSH
3249: EMPTY
3250: LIST
3251: LIST
3252: LIST
3253: LIST
3254: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3255: LD_ADDR_OWVAR 27
3259: PUSH
3260: LD_INT 1
3262: PPUSH
3263: LD_INT 2
3265: PPUSH
3266: CALL_OW 12
3270: ST_TO_ADDR
// hc_class = 4 ;
3271: LD_ADDR_OWVAR 28
3275: PUSH
3276: LD_INT 4
3278: ST_TO_ADDR
// un = CreateHuman ;
3279: LD_ADDR_VAR 0 4
3283: PUSH
3284: CALL_OW 44
3288: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab1 ) ;
3289: LD_VAR 0 4
3293: PPUSH
3294: LD_INT 8
3296: PPUSH
3297: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
3301: LD_ADDR_EXP 12
3305: PUSH
3306: LD_EXP 12
3310: PUSH
3311: LD_VAR 0 4
3315: ADD
3316: ST_TO_ADDR
// end ; end ;
3317: GO 3116
3319: POP
3320: POP
// end ; end_of_file
3321: LD_VAR 0 1
3325: RET
// every 0 0$01 trigger IsInArea ( dow , uwaga1 ) do
3326: LD_EXP 9
3330: PPUSH
3331: LD_INT 4
3333: PPUSH
3334: CALL_OW 308
3338: IFFALSE 3356
3340: GO 3342
3342: DISABLE
// begin Say ( dow , b9 ) ;
3343: LD_EXP 9
3347: PPUSH
3348: LD_STRING b9
3350: PPUSH
3351: CALL_OW 88
// disable ;
3355: DISABLE
// end ;
3356: END
// every 0 0$01 trigger IsInArea ( dow , uwaga2 ) do
3357: LD_EXP 9
3361: PPUSH
3362: LD_INT 5
3364: PPUSH
3365: CALL_OW 308
3369: IFFALSE 3387
3371: GO 3373
3373: DISABLE
// begin Say ( dow , b10 ) ;
3374: LD_EXP 9
3378: PPUSH
3379: LD_STRING b10
3381: PPUSH
3382: CALL_OW 88
// disable ;
3386: DISABLE
// end ;
3387: END
// every 0 0$0.1 trigger IsInArea ( nefarem , Area13 ) do
3388: LD_EXP 6
3392: PPUSH
3393: LD_INT 7
3395: PPUSH
3396: CALL_OW 308
3400: IFFALSE 3457
3402: GO 3404
3404: DISABLE
// begin DialogueOn ;
3405: CALL_OW 6
// Say ( W1 , b1 ) ;
3409: LD_EXP 7
3413: PPUSH
3414: LD_STRING b1
3416: PPUSH
3417: CALL_OW 88
// Say ( Nefarem , b2 ) ;
3421: LD_EXP 6
3425: PPUSH
3426: LD_STRING b2
3428: PPUSH
3429: CALL_OW 88
// Say ( W1 , b3 ) ;
3433: LD_EXP 7
3437: PPUSH
3438: LD_STRING b3
3440: PPUSH
3441: CALL_OW 88
// DialogueOff ;
3445: CALL_OW 7
// Game_Speed = 7 ;
3449: LD_ADDR_OWVAR 65
3453: PUSH
3454: LD_INT 7
3456: ST_TO_ADDR
// end ;
3457: END
// every 0 0$01 trigger IsInArea ( dow , gotowosc ) and IsInArea ( W2 , gotowosc ) do
3458: LD_EXP 9
3462: PPUSH
3463: LD_INT 3
3465: PPUSH
3466: CALL_OW 308
3470: PUSH
3471: LD_EXP 10
3475: PPUSH
3476: LD_INT 3
3478: PPUSH
3479: CALL_OW 308
3483: AND
3484: IFFALSE 3592
3486: GO 3488
3488: DISABLE
// begin wait ( 0 0$06 ) ;
3489: LD_INT 210
3491: PPUSH
3492: CALL_OW 67
// AddComMoveXY ( [ dow , W2 ] , 120 , 101 ) ;
3496: LD_EXP 9
3500: PUSH
3501: LD_EXP 10
3505: PUSH
3506: EMPTY
3507: LIST
3508: LIST
3509: PPUSH
3510: LD_INT 120
3512: PPUSH
3513: LD_INT 101
3515: PPUSH
3516: CALL_OW 171
// AddComMoveXY ( [ dow , W2 ] , 110 , 115 ) ;
3520: LD_EXP 9
3524: PUSH
3525: LD_EXP 10
3529: PUSH
3530: EMPTY
3531: LIST
3532: LIST
3533: PPUSH
3534: LD_INT 110
3536: PPUSH
3537: LD_INT 115
3539: PPUSH
3540: CALL_OW 171
// AddComMoveXY ( [ dow , W2 ] , 126 , 191 ) ;
3544: LD_EXP 9
3548: PUSH
3549: LD_EXP 10
3553: PUSH
3554: EMPTY
3555: LIST
3556: LIST
3557: PPUSH
3558: LD_INT 126
3560: PPUSH
3561: LD_INT 191
3563: PPUSH
3564: CALL_OW 171
// AddComMoveXY ( [ dow , W2 ] , 213 , 189 ) ;
3568: LD_EXP 9
3572: PUSH
3573: LD_EXP 10
3577: PUSH
3578: EMPTY
3579: LIST
3580: LIST
3581: PPUSH
3582: LD_INT 213
3584: PPUSH
3585: LD_INT 189
3587: PPUSH
3588: CALL_OW 171
// end ; end_of_file
3592: END
// export Center ; every 0 0$01 trigger Center = 1 do
3593: LD_EXP 14
3597: PUSH
3598: LD_INT 1
3600: EQUAL
3601: IFFALSE 3614
3603: GO 3605
3605: DISABLE
// begin ; CenterNowOnUnits ( wot ) ;
3606: LD_INT 181
3608: PPUSH
3609: CALL_OW 87
// enable ;
3613: ENABLE
// end ; end_of_file
3614: END
// export CZASc , czas ; every 0 0$1 trigger CZASC = true do
3615: LD_EXP 15
3619: PUSH
3620: LD_INT 1
3622: EQUAL
3623: IFFALSE 3646
3625: GO 3627
3627: DISABLE
// begin Display_Strings := [ #Am03-1 , CZAS ] ;
3628: LD_ADDR_OWVAR 47
3632: PUSH
3633: LD_STRING #Am03-1
3635: PUSH
3636: LD_EXP 16
3640: PUSH
3641: EMPTY
3642: LIST
3643: LIST
3644: ST_TO_ADDR
// enable ;
3645: ENABLE
// end ;
3646: END
// every 0 0$1 trigger CzasC = true do
3647: LD_EXP 15
3651: PUSH
3652: LD_INT 1
3654: EQUAL
3655: IFFALSE 3675
3657: GO 3659
3659: DISABLE
// begin Czas = Czas + 0 0$1 ;
3660: LD_ADDR_EXP 16
3664: PUSH
3665: LD_EXP 16
3669: PUSH
3670: LD_INT 35
3672: PLUS
3673: ST_TO_ADDR
// enable ;
3674: ENABLE
// end ; end_of_file
3675: END
// export A1 , A2 , A3 , A4 ; export function ATAK1 ; begin
3676: LD_INT 0
3678: PPUSH
// SoldLevel = [ 1 , 2 , 2 ] [ Difficulty ] ;
3679: LD_ADDR_EXP 1
3683: PUSH
3684: LD_INT 1
3686: PUSH
3687: LD_INT 2
3689: PUSH
3690: LD_INT 2
3692: PUSH
3693: EMPTY
3694: LIST
3695: LIST
3696: LIST
3697: PUSH
3698: LD_OWVAR 67
3702: ARRAY
3703: ST_TO_ADDR
// EngLevel = [ 1 , 2 , 3 ] [ Difficulty ] ;
3704: LD_ADDR_EXP 2
3708: PUSH
3709: LD_INT 1
3711: PUSH
3712: LD_INT 2
3714: PUSH
3715: LD_INT 3
3717: PUSH
3718: EMPTY
3719: LIST
3720: LIST
3721: LIST
3722: PUSH
3723: LD_OWVAR 67
3727: ARRAY
3728: ST_TO_ADDR
// MechLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
3729: LD_ADDR_EXP 3
3733: PUSH
3734: LD_INT 5
3736: PUSH
3737: LD_INT 6
3739: PUSH
3740: LD_INT 7
3742: PUSH
3743: EMPTY
3744: LIST
3745: LIST
3746: LIST
3747: PUSH
3748: LD_OWVAR 67
3752: ARRAY
3753: ST_TO_ADDR
// SciLevel = [ 0 , 1 , 3 ] [ Difficulty ] ;
3754: LD_ADDR_EXP 4
3758: PUSH
3759: LD_INT 0
3761: PUSH
3762: LD_INT 1
3764: PUSH
3765: LD_INT 3
3767: PUSH
3768: EMPTY
3769: LIST
3770: LIST
3771: LIST
3772: PUSH
3773: LD_OWVAR 67
3777: ARRAY
3778: ST_TO_ADDR
// vc_chassis = 21 ;
3779: LD_ADDR_OWVAR 37
3783: PUSH
3784: LD_INT 21
3786: ST_TO_ADDR
// vc_engine = engine_combustion ;
3787: LD_ADDR_OWVAR 39
3791: PUSH
3792: LD_INT 1
3794: ST_TO_ADDR
// vc_control = control_manual ;
3795: LD_ADDR_OWVAR 38
3799: PUSH
3800: LD_INT 1
3802: ST_TO_ADDR
// vc_weapon = 44 ;
3803: LD_ADDR_OWVAR 40
3807: PUSH
3808: LD_INT 44
3810: ST_TO_ADDR
// uc_side = 3 ;
3811: LD_ADDR_OWVAR 20
3815: PUSH
3816: LD_INT 3
3818: ST_TO_ADDR
// A1 = CreateVehicle ;
3819: LD_ADDR_EXP 17
3823: PUSH
3824: CALL_OW 45
3828: ST_TO_ADDR
// A2 = CreateVehicle ;
3829: LD_ADDR_EXP 18
3833: PUSH
3834: CALL_OW 45
3838: ST_TO_ADDR
// hc_class = 3 ;
3839: LD_ADDR_OWVAR 28
3843: PUSH
3844: LD_INT 3
3846: ST_TO_ADDR
// hc_name =  ;
3847: LD_ADDR_OWVAR 26
3851: PUSH
3852: LD_STRING 
3854: ST_TO_ADDR
// uc_side = 3 ;
3855: LD_ADDR_OWVAR 20
3859: PUSH
3860: LD_INT 3
3862: ST_TO_ADDR
// uc_nation = 3 ;
3863: LD_ADDR_OWVAR 21
3867: PUSH
3868: LD_INT 3
3870: ST_TO_ADDR
// hc_gallery =  ;
3871: LD_ADDR_OWVAR 33
3875: PUSH
3876: LD_STRING 
3878: ST_TO_ADDR
// hc_sex = sex_male ;
3879: LD_ADDR_OWVAR 27
3883: PUSH
3884: LD_INT 1
3886: ST_TO_ADDR
// hc_skills = [ SoldLevel , EngLevel , MechLevel , SciLevel ] ;
3887: LD_ADDR_OWVAR 31
3891: PUSH
3892: LD_EXP 1
3896: PUSH
3897: LD_EXP 2
3901: PUSH
3902: LD_EXP 3
3906: PUSH
3907: LD_EXP 4
3911: PUSH
3912: EMPTY
3913: LIST
3914: LIST
3915: LIST
3916: LIST
3917: ST_TO_ADDR
// A3 = CreateHuman ;
3918: LD_ADDR_EXP 19
3922: PUSH
3923: CALL_OW 44
3927: ST_TO_ADDR
// A4 = CreateHuman ;
3928: LD_ADDR_EXP 20
3932: PUSH
3933: CALL_OW 44
3937: ST_TO_ADDR
// PlaceHumanInUnit ( A3 , A1 ) ;
3938: LD_EXP 19
3942: PPUSH
3943: LD_EXP 17
3947: PPUSH
3948: CALL_OW 52
// PlaceHumanInUnit ( A4 , A2 ) ;
3952: LD_EXP 20
3956: PPUSH
3957: LD_EXP 18
3961: PPUSH
3962: CALL_OW 52
// PlaceUnitArea ( A2 , zli , false ) ;
3966: LD_EXP 18
3970: PPUSH
3971: LD_INT 8
3973: PPUSH
3974: LD_INT 0
3976: PPUSH
3977: CALL_OW 49
// PlaceUnitArea ( A1 , zli , false ) ;
3981: LD_EXP 17
3985: PPUSH
3986: LD_INT 8
3988: PPUSH
3989: LD_INT 0
3991: PPUSH
3992: CALL_OW 49
// AddComAgressiveMove ( [ A1 , A2 ] , 212 , 193 ) ;
3996: LD_EXP 17
4000: PUSH
4001: LD_EXP 18
4005: PUSH
4006: EMPTY
4007: LIST
4008: LIST
4009: PPUSH
4010: LD_INT 212
4012: PPUSH
4013: LD_INT 193
4015: PPUSH
4016: CALL_OW 174
// end ; end_of_file
4020: LD_VAR 0 1
4024: RET
// export RussianAttack1 ; export function ATTACK1 ; var level , un , l ; begin
4025: LD_INT 0
4027: PPUSH
4028: PPUSH
4029: PPUSH
4030: PPUSH
// Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
4031: LD_ADDR_VAR 0 2
4035: PUSH
4036: LD_INT 5
4038: PUSH
4039: LD_INT 6
4041: PUSH
4042: LD_INT 7
4044: PUSH
4045: EMPTY
4046: LIST
4047: LIST
4048: LIST
4049: PUSH
4050: LD_OWVAR 67
4054: ARRAY
4055: ST_TO_ADDR
// repeat begin uc_side = 6 ;
4056: LD_ADDR_OWVAR 20
4060: PUSH
4061: LD_INT 6
4063: ST_TO_ADDR
// uc_nation = 3 ;
4064: LD_ADDR_OWVAR 21
4068: PUSH
4069: LD_INT 3
4071: ST_TO_ADDR
// hc_gallery =  ;
4072: LD_ADDR_OWVAR 33
4076: PUSH
4077: LD_STRING 
4079: ST_TO_ADDR
// hc_name =  ;
4080: LD_ADDR_OWVAR 26
4084: PUSH
4085: LD_STRING 
4087: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4088: LD_ADDR_OWVAR 29
4092: PUSH
4093: LD_INT 9
4095: PPUSH
4096: LD_INT 11
4098: PPUSH
4099: CALL_OW 12
4103: PUSH
4104: LD_INT 10
4106: PPUSH
4107: LD_INT 12
4109: PPUSH
4110: CALL_OW 12
4114: PUSH
4115: EMPTY
4116: LIST
4117: LIST
4118: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) ] ;
4119: LD_ADDR_OWVAR 31
4123: PUSH
4124: LD_VAR 0 2
4128: PUSH
4129: LD_INT 0
4131: PPUSH
4132: LD_INT 4
4134: PPUSH
4135: CALL_OW 12
4139: PUSH
4140: LD_INT 0
4142: PPUSH
4143: LD_INT 4
4145: PPUSH
4146: CALL_OW 12
4150: PUSH
4151: LD_INT 0
4153: PPUSH
4154: LD_INT 4
4156: PPUSH
4157: CALL_OW 12
4161: PUSH
4162: EMPTY
4163: LIST
4164: LIST
4165: LIST
4166: LIST
4167: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4168: LD_ADDR_OWVAR 27
4172: PUSH
4173: LD_INT 1
4175: PPUSH
4176: LD_INT 2
4178: PPUSH
4179: CALL_OW 12
4183: ST_TO_ADDR
// hc_class = 1 ;
4184: LD_ADDR_OWVAR 28
4188: PUSH
4189: LD_INT 1
4191: ST_TO_ADDR
// hc_importance = 10 ;
4192: LD_ADDR_OWVAR 32
4196: PUSH
4197: LD_INT 10
4199: ST_TO_ADDR
// un = CreateHuman ;
4200: LD_ADDR_VAR 0 3
4204: PUSH
4205: CALL_OW 44
4209: ST_TO_ADDR
// PlaceUnitArea ( un , zolnierze , false ) ;
4210: LD_VAR 0 3
4214: PPUSH
4215: LD_INT 12
4217: PPUSH
4218: LD_INT 0
4220: PPUSH
4221: CALL_OW 49
// RussianAttack1 = RussianAttack1 ^ un ;
4225: LD_ADDR_EXP 21
4229: PUSH
4230: LD_EXP 21
4234: PUSH
4235: LD_VAR 0 3
4239: ADD
4240: ST_TO_ADDR
// l = l + 1 ;
4241: LD_ADDR_VAR 0 4
4245: PUSH
4246: LD_VAR 0 4
4250: PUSH
4251: LD_INT 1
4253: PLUS
4254: ST_TO_ADDR
// end until l = 8 ;
4255: LD_VAR 0 4
4259: PUSH
4260: LD_INT 8
4262: EQUAL
4263: IFFALSE 4056
// MechLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
4265: LD_ADDR_EXP 3
4269: PUSH
4270: LD_INT 5
4272: PUSH
4273: LD_INT 6
4275: PUSH
4276: LD_INT 7
4278: PUSH
4279: EMPTY
4280: LIST
4281: LIST
4282: LIST
4283: PUSH
4284: LD_OWVAR 67
4288: ARRAY
4289: ST_TO_ADDR
// uc_side = 6 ;
4290: LD_ADDR_OWVAR 20
4294: PUSH
4295: LD_INT 6
4297: ST_TO_ADDR
// vc_chassis = 23 ;
4298: LD_ADDR_OWVAR 37
4302: PUSH
4303: LD_INT 23
4305: ST_TO_ADDR
// vc_engine = engine_combustion ;
4306: LD_ADDR_OWVAR 39
4310: PUSH
4311: LD_INT 1
4313: ST_TO_ADDR
// vc_control = control_manual ;
4314: LD_ADDR_OWVAR 38
4318: PUSH
4319: LD_INT 1
4321: ST_TO_ADDR
// vc_weapon = 44 ;
4322: LD_ADDR_OWVAR 40
4326: PUSH
4327: LD_INT 44
4329: ST_TO_ADDR
// t2 = CreateVehicle ;
4330: LD_ADDR_EXP 23
4334: PUSH
4335: CALL_OW 45
4339: ST_TO_ADDR
// t3 = CreateVehicle ;
4340: LD_ADDR_EXP 24
4344: PUSH
4345: CALL_OW 45
4349: ST_TO_ADDR
// hc_class = 3 ;
4350: LD_ADDR_OWVAR 28
4354: PUSH
4355: LD_INT 3
4357: ST_TO_ADDR
// hc_name =  ;
4358: LD_ADDR_OWVAR 26
4362: PUSH
4363: LD_STRING 
4365: ST_TO_ADDR
// uc_side = 6 ;
4366: LD_ADDR_OWVAR 20
4370: PUSH
4371: LD_INT 6
4373: ST_TO_ADDR
// hc_gallery =  ;
4374: LD_ADDR_OWVAR 33
4378: PUSH
4379: LD_STRING 
4381: ST_TO_ADDR
// hc_sex = sex_male ;
4382: LD_ADDR_OWVAR 27
4386: PUSH
4387: LD_INT 1
4389: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , MechLevel , Rand ( 0 , 4 ) ] ;
4390: LD_ADDR_OWVAR 31
4394: PUSH
4395: LD_INT 0
4397: PPUSH
4398: LD_INT 4
4400: PPUSH
4401: CALL_OW 12
4405: PUSH
4406: LD_INT 0
4408: PPUSH
4409: LD_INT 4
4411: PPUSH
4412: CALL_OW 12
4416: PUSH
4417: LD_EXP 3
4421: PUSH
4422: LD_INT 0
4424: PPUSH
4425: LD_INT 4
4427: PPUSH
4428: CALL_OW 12
4432: PUSH
4433: EMPTY
4434: LIST
4435: LIST
4436: LIST
4437: LIST
4438: ST_TO_ADDR
// q2 = CreateHuman ;
4439: LD_ADDR_EXP 25
4443: PUSH
4444: CALL_OW 44
4448: ST_TO_ADDR
// q3 = CreateHuman ;
4449: LD_ADDR_EXP 26
4453: PUSH
4454: CALL_OW 44
4458: ST_TO_ADDR
// PlaceHumanInUnit ( q2 , t2 ) ;
4459: LD_EXP 25
4463: PPUSH
4464: LD_EXP 23
4468: PPUSH
4469: CALL_OW 52
// PlaceHumanInUnit ( q3 , t3 ) ;
4473: LD_EXP 26
4477: PPUSH
4478: LD_EXP 24
4482: PPUSH
4483: CALL_OW 52
// PlaceUnitArea ( t2 , zolnierze , false ) ;
4487: LD_EXP 23
4491: PPUSH
4492: LD_INT 12
4494: PPUSH
4495: LD_INT 0
4497: PPUSH
4498: CALL_OW 49
// PlaceUnitArea ( t3 , zolnierze , false ) ;
4502: LD_EXP 24
4506: PPUSH
4507: LD_INT 12
4509: PPUSH
4510: LD_INT 0
4512: PPUSH
4513: CALL_OW 49
// end ; end_of_file
4517: LD_VAR 0 1
4521: RET
// export function WOWOWO ; var i , atakujacy , broniacy ; begin
4522: LD_INT 0
4524: PPUSH
4525: PPUSH
4526: PPUSH
4527: PPUSH
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
4528: LD_ADDR_VAR 0 4
4532: PUSH
4533: LD_INT 22
4535: PUSH
4536: LD_INT 4
4538: PUSH
4539: EMPTY
4540: LIST
4541: LIST
4542: PPUSH
4543: CALL_OW 69
4547: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ f_side , 6 ] ) ;
4548: LD_ADDR_VAR 0 3
4552: PUSH
4553: LD_INT 22
4555: PUSH
4556: LD_INT 6
4558: PUSH
4559: EMPTY
4560: LIST
4561: LIST
4562: PPUSH
4563: CALL_OW 69
4567: ST_TO_ADDR
// for i in atakujacy do
4568: LD_ADDR_VAR 0 2
4572: PUSH
4573: LD_VAR 0 3
4577: PUSH
4578: FOR_IN
4579: IFFALSE 4607
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
4581: LD_VAR 0 2
4585: PPUSH
4586: LD_VAR 0 4
4590: PPUSH
4591: LD_VAR 0 2
4595: PPUSH
4596: CALL_OW 74
4600: PPUSH
4601: CALL_OW 115
// end ;
4605: GO 4578
4607: POP
4608: POP
// end ;
4609: LD_VAR 0 1
4613: RET
// every 0 0$2 do
4614: GO 4616
4616: DISABLE
// begin WOWOWO ;
4617: CALL 4522 0 0
// enable ;
4621: ENABLE
// end ; end_of_file
4622: END
// export RussianAttack2 , t2 , t3 , q2 , q3 ; export function ATTACK2 ; var level , un , l ; begin
4623: LD_INT 0
4625: PPUSH
4626: PPUSH
4627: PPUSH
4628: PPUSH
// Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
4629: LD_ADDR_VAR 0 2
4633: PUSH
4634: LD_INT 5
4636: PUSH
4637: LD_INT 6
4639: PUSH
4640: LD_INT 7
4642: PUSH
4643: EMPTY
4644: LIST
4645: LIST
4646: LIST
4647: PUSH
4648: LD_OWVAR 67
4652: ARRAY
4653: ST_TO_ADDR
// repeat begin uc_side = 6 ;
4654: LD_ADDR_OWVAR 20
4658: PUSH
4659: LD_INT 6
4661: ST_TO_ADDR
// uc_nation = 3 ;
4662: LD_ADDR_OWVAR 21
4666: PUSH
4667: LD_INT 3
4669: ST_TO_ADDR
// hc_gallery =  ;
4670: LD_ADDR_OWVAR 33
4674: PUSH
4675: LD_STRING 
4677: ST_TO_ADDR
// hc_name =  ;
4678: LD_ADDR_OWVAR 26
4682: PUSH
4683: LD_STRING 
4685: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4686: LD_ADDR_OWVAR 29
4690: PUSH
4691: LD_INT 9
4693: PPUSH
4694: LD_INT 11
4696: PPUSH
4697: CALL_OW 12
4701: PUSH
4702: LD_INT 10
4704: PPUSH
4705: LD_INT 12
4707: PPUSH
4708: CALL_OW 12
4712: PUSH
4713: EMPTY
4714: LIST
4715: LIST
4716: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) ] ;
4717: LD_ADDR_OWVAR 31
4721: PUSH
4722: LD_VAR 0 2
4726: PUSH
4727: LD_INT 0
4729: PPUSH
4730: LD_INT 1
4732: PPUSH
4733: CALL_OW 12
4737: PUSH
4738: LD_INT 0
4740: PPUSH
4741: LD_INT 1
4743: PPUSH
4744: CALL_OW 12
4748: PUSH
4749: LD_INT 0
4751: PPUSH
4752: LD_INT 1
4754: PPUSH
4755: CALL_OW 12
4759: PUSH
4760: EMPTY
4761: LIST
4762: LIST
4763: LIST
4764: LIST
4765: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4766: LD_ADDR_OWVAR 27
4770: PUSH
4771: LD_INT 1
4773: PPUSH
4774: LD_INT 2
4776: PPUSH
4777: CALL_OW 12
4781: ST_TO_ADDR
// hc_class = 1 ;
4782: LD_ADDR_OWVAR 28
4786: PUSH
4787: LD_INT 1
4789: ST_TO_ADDR
// hc_importance = 10 ;
4790: LD_ADDR_OWVAR 32
4794: PUSH
4795: LD_INT 10
4797: ST_TO_ADDR
// un = CreateHuman ;
4798: LD_ADDR_VAR 0 3
4802: PUSH
4803: CALL_OW 44
4807: ST_TO_ADDR
// PlaceUnitArea ( un , Area16 , false ) ;
4808: LD_VAR 0 3
4812: PPUSH
4813: LD_INT 10
4815: PPUSH
4816: LD_INT 0
4818: PPUSH
4819: CALL_OW 49
// RussianAttack2 = RussianAttack2 ^ un ;
4823: LD_ADDR_EXP 22
4827: PUSH
4828: LD_EXP 22
4832: PUSH
4833: LD_VAR 0 3
4837: ADD
4838: ST_TO_ADDR
// l = l + 1 ;
4839: LD_ADDR_VAR 0 4
4843: PUSH
4844: LD_VAR 0 4
4848: PUSH
4849: LD_INT 1
4851: PLUS
4852: ST_TO_ADDR
// end until l = 8 ;
4853: LD_VAR 0 4
4857: PUSH
4858: LD_INT 8
4860: EQUAL
4861: IFFALSE 4654
// SoldLevel = [ 1 , 2 , 3 ] [ Difficulty ] ;
4863: LD_ADDR_EXP 1
4867: PUSH
4868: LD_INT 1
4870: PUSH
4871: LD_INT 2
4873: PUSH
4874: LD_INT 3
4876: PUSH
4877: EMPTY
4878: LIST
4879: LIST
4880: LIST
4881: PUSH
4882: LD_OWVAR 67
4886: ARRAY
4887: ST_TO_ADDR
// EngLevel = [ 1 , 2 , 4 ] [ Difficulty ] ;
4888: LD_ADDR_EXP 2
4892: PUSH
4893: LD_INT 1
4895: PUSH
4896: LD_INT 2
4898: PUSH
4899: LD_INT 4
4901: PUSH
4902: EMPTY
4903: LIST
4904: LIST
4905: LIST
4906: PUSH
4907: LD_OWVAR 67
4911: ARRAY
4912: ST_TO_ADDR
// MechLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
4913: LD_ADDR_EXP 3
4917: PUSH
4918: LD_INT 5
4920: PUSH
4921: LD_INT 6
4923: PUSH
4924: LD_INT 7
4926: PUSH
4927: EMPTY
4928: LIST
4929: LIST
4930: LIST
4931: PUSH
4932: LD_OWVAR 67
4936: ARRAY
4937: ST_TO_ADDR
// SciLevel = [ 0 , 0 , 1 ] [ Difficulty ] ;
4938: LD_ADDR_EXP 4
4942: PUSH
4943: LD_INT 0
4945: PUSH
4946: LD_INT 0
4948: PUSH
4949: LD_INT 1
4951: PUSH
4952: EMPTY
4953: LIST
4954: LIST
4955: LIST
4956: PUSH
4957: LD_OWVAR 67
4961: ARRAY
4962: ST_TO_ADDR
// uc_side = 6 ;
4963: LD_ADDR_OWVAR 20
4967: PUSH
4968: LD_INT 6
4970: ST_TO_ADDR
// vc_chassis = 23 ;
4971: LD_ADDR_OWVAR 37
4975: PUSH
4976: LD_INT 23
4978: ST_TO_ADDR
// vc_engine = engine_combustion ;
4979: LD_ADDR_OWVAR 39
4983: PUSH
4984: LD_INT 1
4986: ST_TO_ADDR
// vc_control = control_manual ;
4987: LD_ADDR_OWVAR 38
4991: PUSH
4992: LD_INT 1
4994: ST_TO_ADDR
// vc_weapon = 44 ;
4995: LD_ADDR_OWVAR 40
4999: PUSH
5000: LD_INT 44
5002: ST_TO_ADDR
// t2 = CreateVehicle ;
5003: LD_ADDR_EXP 23
5007: PUSH
5008: CALL_OW 45
5012: ST_TO_ADDR
// t3 = CreateVehicle ;
5013: LD_ADDR_EXP 24
5017: PUSH
5018: CALL_OW 45
5022: ST_TO_ADDR
// hc_class = 3 ;
5023: LD_ADDR_OWVAR 28
5027: PUSH
5028: LD_INT 3
5030: ST_TO_ADDR
// hc_name =  ;
5031: LD_ADDR_OWVAR 26
5035: PUSH
5036: LD_STRING 
5038: ST_TO_ADDR
// uc_side = 6 ;
5039: LD_ADDR_OWVAR 20
5043: PUSH
5044: LD_INT 6
5046: ST_TO_ADDR
// hc_gallery =  ;
5047: LD_ADDR_OWVAR 33
5051: PUSH
5052: LD_STRING 
5054: ST_TO_ADDR
// hc_sex = sex_male ;
5055: LD_ADDR_OWVAR 27
5059: PUSH
5060: LD_INT 1
5062: ST_TO_ADDR
// hc_skills = [ SoldLevel , EngLevel , MechLevel , SciLevel ] ;
5063: LD_ADDR_OWVAR 31
5067: PUSH
5068: LD_EXP 1
5072: PUSH
5073: LD_EXP 2
5077: PUSH
5078: LD_EXP 3
5082: PUSH
5083: LD_EXP 4
5087: PUSH
5088: EMPTY
5089: LIST
5090: LIST
5091: LIST
5092: LIST
5093: ST_TO_ADDR
// q2 = CreateHuman ;
5094: LD_ADDR_EXP 25
5098: PUSH
5099: CALL_OW 44
5103: ST_TO_ADDR
// q3 = CreateHuman ;
5104: LD_ADDR_EXP 26
5108: PUSH
5109: CALL_OW 44
5113: ST_TO_ADDR
// PlaceHumanInUnit ( q2 , t2 ) ;
5114: LD_EXP 25
5118: PPUSH
5119: LD_EXP 23
5123: PPUSH
5124: CALL_OW 52
// PlaceHumanInUnit ( q3 , t3 ) ;
5128: LD_EXP 26
5132: PPUSH
5133: LD_EXP 24
5137: PPUSH
5138: CALL_OW 52
// PlaceUnitArea ( t2 , Area16 , false ) ;
5142: LD_EXP 23
5146: PPUSH
5147: LD_INT 10
5149: PPUSH
5150: LD_INT 0
5152: PPUSH
5153: CALL_OW 49
// PlaceUnitArea ( t3 , Area16 , false ) ;
5157: LD_EXP 24
5161: PPUSH
5162: LD_INT 10
5164: PPUSH
5165: LD_INT 0
5167: PPUSH
5168: CALL_OW 49
// end ; end_of_file
5172: LD_VAR 0 1
5176: RET
// export POM1 , POm2 , POM3 ; export function POMOC ; begin
5177: LD_INT 0
5179: PPUSH
// uc_side = 1 ;
5180: LD_ADDR_OWVAR 20
5184: PUSH
5185: LD_INT 1
5187: ST_TO_ADDR
// uc_nation = 1 ;
5188: LD_ADDR_OWVAR 21
5192: PUSH
5193: LD_INT 1
5195: ST_TO_ADDR
// hc_gallery =  ;
5196: LD_ADDR_OWVAR 33
5200: PUSH
5201: LD_STRING 
5203: ST_TO_ADDR
// hc_name =  ;
5204: LD_ADDR_OWVAR 26
5208: PUSH
5209: LD_STRING 
5211: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5212: LD_ADDR_OWVAR 29
5216: PUSH
5217: LD_INT 9
5219: PPUSH
5220: LD_INT 11
5222: PPUSH
5223: CALL_OW 12
5227: PUSH
5228: LD_INT 10
5230: PPUSH
5231: LD_INT 12
5233: PPUSH
5234: CALL_OW 12
5238: PUSH
5239: EMPTY
5240: LIST
5241: LIST
5242: ST_TO_ADDR
// hc_skills = [ 3 , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) ] ;
5243: LD_ADDR_OWVAR 31
5247: PUSH
5248: LD_INT 3
5250: PUSH
5251: LD_INT 0
5253: PPUSH
5254: LD_INT 1
5256: PPUSH
5257: CALL_OW 12
5261: PUSH
5262: LD_INT 0
5264: PPUSH
5265: LD_INT 1
5267: PPUSH
5268: CALL_OW 12
5272: PUSH
5273: LD_INT 0
5275: PPUSH
5276: LD_INT 1
5278: PPUSH
5279: CALL_OW 12
5283: PUSH
5284: EMPTY
5285: LIST
5286: LIST
5287: LIST
5288: LIST
5289: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5290: LD_ADDR_OWVAR 27
5294: PUSH
5295: LD_INT 1
5297: PPUSH
5298: LD_INT 2
5300: PPUSH
5301: CALL_OW 12
5305: ST_TO_ADDR
// hc_class = 1 ;
5306: LD_ADDR_OWVAR 28
5310: PUSH
5311: LD_INT 1
5313: ST_TO_ADDR
// hc_importance = 10 ;
5314: LD_ADDR_OWVAR 32
5318: PUSH
5319: LD_INT 10
5321: ST_TO_ADDR
// POM1 = CreateHuman ;
5322: LD_ADDR_EXP 27
5326: PUSH
5327: CALL_OW 44
5331: ST_TO_ADDR
// hc_skills = [ 4 , Rand ( 0 , 2 ) , Rand ( 0 , 4 ) , Rand ( 0 , 1 ) ] ;
5332: LD_ADDR_OWVAR 31
5336: PUSH
5337: LD_INT 4
5339: PUSH
5340: LD_INT 0
5342: PPUSH
5343: LD_INT 2
5345: PPUSH
5346: CALL_OW 12
5350: PUSH
5351: LD_INT 0
5353: PPUSH
5354: LD_INT 4
5356: PPUSH
5357: CALL_OW 12
5361: PUSH
5362: LD_INT 0
5364: PPUSH
5365: LD_INT 1
5367: PPUSH
5368: CALL_OW 12
5372: PUSH
5373: EMPTY
5374: LIST
5375: LIST
5376: LIST
5377: LIST
5378: ST_TO_ADDR
// POM2 = CreateHuman ;
5379: LD_ADDR_EXP 28
5383: PUSH
5384: CALL_OW 44
5388: ST_TO_ADDR
// PlaceUnitArea ( POM1 , Area16 , false ) ;
5389: LD_EXP 27
5393: PPUSH
5394: LD_INT 10
5396: PPUSH
5397: LD_INT 0
5399: PPUSH
5400: CALL_OW 49
// PlaceUnitArea ( POM2 , Area16 , false ) ;
5404: LD_EXP 28
5408: PPUSH
5409: LD_INT 10
5411: PPUSH
5412: LD_INT 0
5414: PPUSH
5415: CALL_OW 49
// uc_nation = 1 ;
5419: LD_ADDR_OWVAR 21
5423: PUSH
5424: LD_INT 1
5426: ST_TO_ADDR
// hc_class = 4 ;
5427: LD_ADDR_OWVAR 28
5431: PUSH
5432: LD_INT 4
5434: ST_TO_ADDR
// hc_name =  ;
5435: LD_ADDR_OWVAR 26
5439: PUSH
5440: LD_STRING 
5442: ST_TO_ADDR
// uc_side = 1 ;
5443: LD_ADDR_OWVAR 20
5447: PUSH
5448: LD_INT 1
5450: ST_TO_ADDR
// hc_gallery =  ;
5451: LD_ADDR_OWVAR 33
5455: PUSH
5456: LD_STRING 
5458: ST_TO_ADDR
// hc_sex = sex_male ;
5459: LD_ADDR_OWVAR 27
5463: PUSH
5464: LD_INT 1
5466: ST_TO_ADDR
// hc_skills = [ 0 , Rand ( 1 , 3 ) , Rand ( 1 , 3 ) , 5 ] ;
5467: LD_ADDR_OWVAR 31
5471: PUSH
5472: LD_INT 0
5474: PUSH
5475: LD_INT 1
5477: PPUSH
5478: LD_INT 3
5480: PPUSH
5481: CALL_OW 12
5485: PUSH
5486: LD_INT 1
5488: PPUSH
5489: LD_INT 3
5491: PPUSH
5492: CALL_OW 12
5496: PUSH
5497: LD_INT 5
5499: PUSH
5500: EMPTY
5501: LIST
5502: LIST
5503: LIST
5504: LIST
5505: ST_TO_ADDR
// POM3 = CreateHuman ;
5506: LD_ADDR_EXP 29
5510: PUSH
5511: CALL_OW 44
5515: ST_TO_ADDR
// PlaceUnitArea ( POM3 , Area16 , false ) ;
5516: LD_EXP 29
5520: PPUSH
5521: LD_INT 10
5523: PPUSH
5524: LD_INT 0
5526: PPUSH
5527: CALL_OW 49
// AddComMoveXY ( [ POM1 , POM2 , POM3 ] , 97 , 21 ) ;
5531: LD_EXP 27
5535: PUSH
5536: LD_EXP 28
5540: PUSH
5541: LD_EXP 29
5545: PUSH
5546: EMPTY
5547: LIST
5548: LIST
5549: LIST
5550: PPUSH
5551: LD_INT 97
5553: PPUSH
5554: LD_INT 21
5556: PPUSH
5557: CALL_OW 171
// end ; end_of_file
5561: LD_VAR 0 1
5565: RET
// every 0 0$01 trigger IsDead ( Nefarem ) do
5566: LD_EXP 6
5570: PPUSH
5571: CALL_OW 301
5575: IFFALSE 5587
5577: GO 5579
5579: DISABLE
// begin YouLost ( ded1 ) ;
5580: LD_STRING ded1
5582: PPUSH
5583: CALL_OW 104
// end ;
5587: END
// every 0 0$01 trigger IsDead ( DOC ) do
5588: LD_EXP 8
5592: PPUSH
5593: CALL_OW 301
5597: IFFALSE 5609
5599: GO 5601
5601: DISABLE
// begin YouLost ( ded2 ) ;
5602: LD_STRING ded2
5604: PPUSH
5605: CALL_OW 104
// end ; end_of_file
5609: END
// export function Medale ; begin
5610: LD_INT 0
5612: PPUSH
// if FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] ] ) >= 15 then
5613: LD_INT 22
5615: PUSH
5616: LD_INT 4
5618: PUSH
5619: EMPTY
5620: LIST
5621: LIST
5622: PUSH
5623: LD_INT 21
5625: PUSH
5626: LD_INT 1
5628: PUSH
5629: EMPTY
5630: LIST
5631: LIST
5632: PUSH
5633: EMPTY
5634: LIST
5635: LIST
5636: PPUSH
5637: CALL_OW 69
5641: PUSH
5642: LD_INT 15
5644: GREATEREQUAL
5645: IFFALSE 5659
// begin AddMedal ( med2 , 1 ) ;
5647: LD_STRING med2
5649: PPUSH
5650: LD_INT 1
5652: PPUSH
5653: CALL_OW 101
// end else
5657: GO 5670
// begin AddMedal ( med2 , - 1 ) ;
5659: LD_STRING med2
5661: PPUSH
5662: LD_INT 1
5664: NEG
5665: PPUSH
5666: CALL_OW 101
// end ; if GetTech ( tech_Opto2 , 4 ) = state_researched and GetTech ( tech_Tech2 , 4 ) = State_researched and GetTech ( tech_Weap2 , 4 ) = State_researched then
5670: LD_INT 61
5672: PPUSH
5673: LD_INT 4
5675: PPUSH
5676: CALL_OW 321
5680: PUSH
5681: LD_INT 2
5683: EQUAL
5684: PUSH
5685: LD_INT 49
5687: PPUSH
5688: LD_INT 4
5690: PPUSH
5691: CALL_OW 321
5695: PUSH
5696: LD_INT 2
5698: EQUAL
5699: AND
5700: PUSH
5701: LD_INT 52
5703: PPUSH
5704: LD_INT 4
5706: PPUSH
5707: CALL_OW 321
5711: PUSH
5712: LD_INT 2
5714: EQUAL
5715: AND
5716: IFFALSE 5730
// begin AddMedal ( med3 , 1 ) ;
5718: LD_STRING med3
5720: PPUSH
5721: LD_INT 1
5723: PPUSH
5724: CALL_OW 101
// end else
5728: GO 5741
// begin AddMedal ( med3 , - 1 ) ;
5730: LD_STRING med3
5732: PPUSH
5733: LD_INT 1
5735: NEG
5736: PPUSH
5737: CALL_OW 101
// end ; if GetTech ( tech_Opto2 , 4 ) = state_researched and GetTech ( tech_Radar , 4 ) = state_researched then
5741: LD_INT 61
5743: PPUSH
5744: LD_INT 4
5746: PPUSH
5747: CALL_OW 321
5751: PUSH
5752: LD_INT 2
5754: EQUAL
5755: PUSH
5756: LD_INT 6
5758: PPUSH
5759: LD_INT 4
5761: PPUSH
5762: CALL_OW 321
5766: PUSH
5767: LD_INT 2
5769: EQUAL
5770: AND
5771: IFFALSE 5785
// begin AddMedal ( med1 , 1 ) ;
5773: LD_STRING med1
5775: PPUSH
5776: LD_INT 1
5778: PPUSH
5779: CALL_OW 101
// end else
5783: GO 5796
// begin AddMedal ( med1 , - 1 ) ;
5785: LD_STRING med1
5787: PPUSH
5788: LD_INT 1
5790: NEG
5791: PPUSH
5792: CALL_OW 101
// end ; givemedals ( MAIN ) ;
5796: LD_STRING MAIN
5798: PPUSH
5799: CALL_OW 102
// end ; end_of_file
5803: LD_VAR 0 1
5807: RET
// export function WOWOWOWO ; var i , atakujacy , broniacy ; begin
5808: LD_INT 0
5810: PPUSH
5811: PPUSH
5812: PPUSH
5813: PPUSH
// broniacy = FilterAllUnits ( [ f_side , 1 ] ) ;
5814: LD_ADDR_VAR 0 4
5818: PUSH
5819: LD_INT 22
5821: PUSH
5822: LD_INT 1
5824: PUSH
5825: EMPTY
5826: LIST
5827: LIST
5828: PPUSH
5829: CALL_OW 69
5833: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ f_side , 3 ] ) ;
5834: LD_ADDR_VAR 0 3
5838: PUSH
5839: LD_INT 22
5841: PUSH
5842: LD_INT 3
5844: PUSH
5845: EMPTY
5846: LIST
5847: LIST
5848: PPUSH
5849: CALL_OW 69
5853: ST_TO_ADDR
// for i in atakujacy do
5854: LD_ADDR_VAR 0 2
5858: PUSH
5859: LD_VAR 0 3
5863: PUSH
5864: FOR_IN
5865: IFFALSE 5893
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
5867: LD_VAR 0 2
5871: PPUSH
5872: LD_VAR 0 4
5876: PPUSH
5877: LD_VAR 0 2
5881: PPUSH
5882: CALL_OW 74
5886: PPUSH
5887: CALL_OW 115
// end ;
5891: GO 5864
5893: POP
5894: POP
// end ;
5895: LD_VAR 0 1
5899: RET
// every 0 0$2 do
5900: GO 5902
5902: DISABLE
// begin WOWOWOWO ;
5903: CALL 5808 0 0
// enable ;
5907: ENABLE
// end ;
5908: END
